<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>字符串</title>
  </head>
  <body>
    <!-- 
      内置对象
      堆栈内存，深浅拷贝
      函数提升(闭包 作用域)
      DOM入门
      BOM
      ajax！！！
      浏览器存储
      原型
     -->
    <script>
      // 1. "false"["slice"].length + false=? 为什么
      /* 
      字符串"false"对象上slice方法的长度
      函数的长度：第一个具有默认参数之前的形式参数的个数
      slice：两个参数 第一个参数：开始截取的下标，第二个参数：结束的下标
       "false"["slice"].length=2
       +false : false->0
       2+0 =2 
      */
      // 2. 封装一个函数实现字符串翻转。
      // function re(str) {
      //   return str.split("").reverse().join("");
      // }
      // var str = "牛奶";
      // console.log(re(str));
      // 3. 字符串 digite = "0123456789", 把前 5 个字符分割出来， 返回个单字符的数组,
      // 注意， 返回数组里面的数字是字符串类型,要得到['5', '6', '7', '8', '9']
      // var digite = "0123456789";
      // console.log(digite.slice(5).split(""));
      // 4.已知有字符串 foo=”get-element-by-id”,写一个 function 将其转化成驼峰表示法”getElementById”.
      // //方法一 forEach
      // var foo = "get-element-by-id";
      // function tf(str) {
      //   var newStr = "";
      //   str.split("-").forEach(function (item, index) {
      //     index > 0
      //       ? (newStr += item.replace(item[0], item[0].toUpperCase()))
      //       : (newStr = item);
      //   });
      //   return newStr;
      // }
      // console.log(tf(foo));
      // 方法二 "-e"=>"E"
      // var foo = "get-element-by-id";
      // function tf(str) {
      //   for (var i = 0; i < str.length; i++) {
      //     if (str[i] == "-") {
      //       str = str.replace(str[i] + str[i + 1], str[i + 1].toUpperCase());
      //     }
      //   }
      //   return str;
      // }
      // console.log(tf(foo));
      // 方法三map string->array
      // var foo = "get-element-by-id";
      // function tf(str) {
      //   str = str.split("-").map(function (ele, index) {
      //     //ele 为 get  element by id
      //     return index ? ele.replace(ele[0], ele[0].toUpperCase()) : ele;
      //   });
      //   return str.join("");
      // }
      // console.log(tf(foo));
      // 5.定义一个函数,将"今天是什么鬼天气，这么热，明天要去游泳！"里面的所有"天"的下标输出
      /* 
      indexOf(你要查找的字符,开始查找的下标)
      手动让 开始查找的下标 在找到之后 自增
      */
      // var str = "今天是什么鬼天气，这么热，明天要去游泳！";
      // function find(str, word) {
      //   var index = 0;
      //   while (1) {
      //     index = str.indexOf(word, index);
      //     if (index == -1) {
      //       break;
      //     } else {
      //       console.log(index);
      //       index++;
      //     }
      //   }
      // }
      // find(str, "天");//1，6，14
      // 6.定义一个函数,将"今天是什么鬼天气，这么热，明天要去游泳！"里面的有"天"替换成"日"
      // var str = "今天是什么鬼天气，这么热，明天要去游泳！";
      // function th(str, oldWord, newWord) {
      //   return (str = str.replaceAll(oldWord, newWord));
      // }
      // console.log(th(str, "天", "日"));
      // 7.解析 URL Params 为对象，例如(https://www.baidu.com/s?ie=UTF-8&wd=letcode)
      // 得到{ie: 'UTF-8', wd: 'letcode', url: 'https://www.baidu.com/s'}
      var url = "https://www.baidu.com/s?ie=UTF-8&wd=letcode";

      console.log(url.split("?"));
      // 获取问号之前的地址信息
      var url_h = url.split("?")[0];
      // 获取问号之后的地址信息
      var url_d = url.split("?")[1];
      var data = {};
      url_d.split("&").forEach(function (ele) {
        data[ele.split("=")[0]] = ele.split("=")[1];
      });
      data.url = url_h;
      console.log(data);
      // 8.查找字符串中(abbcccddddd)出现最多的字符和个数
      //笔记270行
    </script>
  </body>
</html>
